/**
 * Created by lenovo on 2015/12/3.
 */
// path是自带的模块
var path = require("path");
// 可以使用normalize方法去规范化字符串
console.log(path.normalize("/foo/bat//baz/asdf/quux"));
// 可以使用path.join拼接字符串 路径
console.log(path.join("/foo", "bar", "////vaz/adsdf", "qqqqq"));


// 可以使用resolve()解析路径
console.log(path.resolve('d://', "nodejs2"));
// 如果解析的不是绝对路径 那么path会把当前工作目录附加到解析结果前面
console.log(path.resolve("ssss", "dddd")); // e:\node_study\test\path\ssss\dddd


// 查找两个绝对路径之间的相对路径
console.log(path.relative("/data/orandea/test/aaa", "/data/hahahaha/heihei/gaga"));


// 提取路径的组成部分 获取一个文件的父文件夹路径
console.log(path.dirname("/foo/var/asdf/sdf/qwe/text.xt"));

// 从文件路径中提取文件名  直接拿到文件名
console.log(path.basename('/foo/sdf/qq/re/qwe/quux.txt'));


// 获取文件的扩展名
console.log(path.extname("/aaa/bbb/ccc/text.txt"));

// 判断路径是否存在
//path.exist("/aaaa", function (exist) {
//    console.log(exist);
//});  现在无法使用了 使用fs.exists来代替


// 可以通过这个方式进行调用，查看路径是不是存在
var fs = require("fs");
fs.exists("d://111", function (exists) {
    console.log(exists);
});

// 通过查询文件的统计信息 包括创建时间修改时间等内容
fs.stat("d://nodejs", function (err, stats) {
    console.log(stats);
    // 通过stas可以获取很多东西
    // stats.isFile();
    console.log(stats.isDirectory());

});


// 在读取文件或者处理文件之前 必须首先使用fs.open打开函数 然后使用文件的描述符调用所提供的回掉函数
var filePath = path.resolve("./../event/eventEmmiter.js");
fs.open(filePath, 'r', function (err, fd) {
    if (err) {
        console.log("err" + err);
    }
    console.log(fd);
});

fs.open(filePath, 'r', function opened(err, fd) {
    if (err) {
        throw err
    }
    var readBuffer = new Buffer(1024),
        bufferOffset = 0,
        bufferLength = readBuffer.length,
        filePosition = 100;

    fs.read(fd, readBuffer, bufferOffset, bufferLength, filePosition, function read(err, readBytes) {
        console.log('just read' + readBytes + "bytes");
        if (readBytes > 0) {
            console.log(readBuffer.slice(0, readBytes).toString())
        }
    });
});








